/*Realizar el Pseudocodigo y el programa que: Calcule e imprima el valor de "U" = 1! + 2! + 3! + ... + 20! */

#include <iostream.h>
/*Declaraciones globales*/

double v=0,i,j,f;

/*----------------*/
int Factorial(int a);  /* Int ya que j=a seran enteros */
/*----------------*/

void main()

{

 cout<<"\n";
 cout<<"              FACTORIAL"<<endl;   /*Utilize Procedemientos y funciones*/
 cout<<"              *********\n";
 cout<<"\n";
 cout<<" Hallar el valor de U = 1! + 2! + 3! + ... + 20!: "<<Factorial(i)<<"\n";   /*Salida de la Funcion Factorial*/
 cout<<"\n";
 cout<<" Finalizado\n";
 cout<<" **********\n";
 cout<<"\n";

}

/*----------------*/

int Factorial(int a)  /*Utilizando While*/

{

   do

    {

     f=1;
     a=1;

     do

      {
        f=f*a;
        a++;
      }

     while ( a<=i );    /*<Condicion 2>*/

     v=v+f;
     i++;		/*Acumulador*/
    }

   while ( i<=20 );     /*<Condicion 1>*/

    cout<<"\n";
    return (v);         /*retornar el valor "v"*/
}

/*----------------
Fichero descargado de http://www.algoritmia.blogspot.com <<NewClass
Desarrollado por edaniel15@hotmail.com || edaniel15@gmail.com ... algoritmos Dividelos y venceras ... */